loading...
ناب اسکریپت
admin بازدید : 910 جمعه 11 مرداد 1392 نظرات (0)

احتمالا سایت شما هم دارای دسته بندی های مختلفی هست و دوست دارید که برای بعضی از دسته های سایت خودتون قالب جداگانه قرار بدید یا شاید مطلب خاصی داشته باشید که می خواهید به طور ویژه قالب اختصاصی براش ایجاد کنید.

مثلا فرض کنید می خواهید صفحه ثبت نام سایت خود با قالبی جدا که متناسب با همین کار هست لود کنید. یا شاید مثلا یک گالری تصاویر راه اندازی کردید که خوب حتما قالبش باید متفاوت از قسمت های دیگه باشه.

راه های مختلفی برای این کار وجود داره.

قالب جداگانه برای هر دسته

روش اول: ساخت فایل category-5.php

به این صورت که شما ابتدا آی دی دسته ای که می خواهید قالبش متفاوت از دسته های دیگه باشه رو به دست میارید. مثلا آی دی 10. سپس در پوشه قالب خودتون یک فایل با نام category-id.php ایجاد می کنید. به جای آی دی باید شماره آی دی دسته را بنویسید و داخل این فایل کدهای خود را قرار می دهید. وردپرس به طور خودکار دسته را شناسایی می کنه و اون دسته رو با قالب مشخص شده لود می کنه.

همچنین به جای شماره آی دی دسته می تونید اسم دسته را بنویسید مثلا نامک دسته شما gallery باشه باید فایلی با نام category-gallery.php ایجاد کرده و کدهای خود را در این فایل قرار دهید.

روش دوم: ایجاد تغییراتی در فایل functions.php قالب خود:

نکته1: اگر این فایل وجود ندارد حتما آن را ایجاد کنید.

نکته2: به نام فایل خوب دقت کنید. (آخر فایل “s” داره یعنی functions.php نه function.php)

1. در ابتدا باید کد زیر را در functions.php کپی کنید:

</p>

<div id="wpshdi_2">
<pre><?php
add_filter( 'category_template', 'my_category_template' );
function my_category_template( $template ) {
محل قرار گیری کد ها
return $template;
}
?>

 

2. در مرحله دوم باید یک فایل با نام دلخواه مثلا template_id_A.php ایجاد کنید و کدهای قالب خود را در آن قرار دهید.

3. سپس باید به جای قسمتی که نوشتیم “محل قرار گیری کدها” کد زیر رو قرار بدهید:

if( is_category( شماره آی دی دسته ) )
$template = locate_template( array( 'template_id_A.php', 'category.php' ) );

4. اگر می خواهید از چند دسته استفاده کنید باید از  elseif استفاده کنید یعنی کد زیر را نیز به کد بالا اضافه کنید:

elseif( is_category( شماره آی دی دسته ) )
$template = locate_template( array( 'template_id_B.php', 'category.php' ) );

در آخر کد باید به شکل زیر در بیاد. مثلا من برای سه تا دسته با ای دی های 10 و 15 و 20 ساختم:

<?php

add_filter( 'category_template', 'my_category_template' );

function my_category_template( $template ) {

if( is_category( 10 ) )
$template = locate_template( array( 'template_id_A.php', 'category.php' ) );
elseif( is_category( 15 ) )
$template = locate_template( array( 'template_id_B.php', 'category.php' ) );
elseif( is_category( 20 ) )
$template = locate_template( array( 'template_id_c.php', 'category.php' ) );

return $template;
}
?>

نوشته به کمک توپ دیزاین

مطالب مرتبط
ارسال نظر برای این مطلب

کد امنیتی رفرش
اطلاعات کاربری
  • فراموشی رمز عبور؟
  • نویسندگان
    آرشیو
    آمار سایت
  • کل مطالب : 142
  • کل نظرات : 3
  • افراد آنلاین : 2
  • تعداد اعضا : 30
  • آی پی امروز : 65
  • آی پی دیروز : 135
  • بازدید امروز : 181
  • باردید دیروز : 217
  • گوگل امروز : 0
  • گوگل دیروز : 0
  • بازدید هفته : 2,005
  • بازدید ماه : 6,948
  • بازدید سال : 42,008
  • بازدید کلی : 526,577